#ifndef __IMAGEMEAN_H__
#define __IMAGEMEAN_H__

#include "Classifier.h"
#include "kNNClassifier.h"

#include <vector>

class ImageMean : public Classifier
{
public:
  ImageMean();
  virtual ~ImageMean();

  virtual int test(const Sample& s) const;
  virtual void train(const DataSet& ds);
  void ImageMean::ft(const Sample& s) const;
  int ImageMean::testknn(const Sample& s) const;
  void ImageMean::trainknn(const DataSet& ds) const;
  float ImageMean::windows(const Sample& s) const;
  static const unsigned int window[3][9]; 

protected:
  // A vector where each element is the mean vector for some texture class
  // floathe mean is taken over a set of training samples
  std::vector<std::vector<float> > means_;
  kNNClassifier *knn;

};

#endif